//package com.weng.cloud.service8881.concurrenct.algorithm.recursion;
//
//import com.weng.cloud.service8881.concurrenct.algorithm.recursion.base.Puzzle;
//import com.weng.cloud.service8881.concurrenct.algorithm.recursion.base.PuzzleSolver;
//import com.weng.cloud.service8881.concurrenct.algorithm.recursion.resolver.ConcurrentPuzzleSolver;
//import com.weng.cloud.service8881.concurrenct.algorithm.recursion.resolver.EnhancedConcurrentPuzzleSolver;
//import com.weng.cloud.service8881.concurrenct.algorithm.recursion.resolver.SequentialPuzzleSolver;
//
//import java.util.concurrent.ConcurrentMap;
//import java.util.concurrent.ExecutorService;
//
///**
// * @Author: weng
// * @Date: 2022/7/10
// * @Description: com.weng.cloud.service8881.concurrenct.algorithm.recursion
// */
//
//public final class PuzzleSolvers<P, M> {
//
//    public static <P, M> PuzzleSolver<M> newSequentialPuzzleSolver(Puzzle<P, M> puzzle) {
//        return new SequentialPuzzleSolver<>(puzzle);
//    }
//
//    public static <P, M> PuzzleSolver<M> newConcurrentPuzzleSolver(Puzzle<P, M> puzzle, ExecutorService executorService, ConcurrentMap<P, Boolean> seen) {
//        return new ConcurrentPuzzleSolver<>(puzzle, executorService, seen);
//    }
//
//    public static <P, M> PuzzleSolver<M> newEnhancedConcurrentPuzzleSolver(Puzzle<P, M> puzzle, ExecutorService executorService, ConcurrentMap<P, Boolean> seen) {
//        return new EnhancedConcurrentPuzzleSolver<>(puzzle, executorService, seen);
//    }
//}
